Reliable and accurate location information continues to be pursued in both commercial and military applications. Long gone are the days of sextants and plotting positions based on stars, or based upon ground based navigation systems. Current navigation aids use satellites to provide highly accurate state information such as position, as well as time related knowledge of direction and speed.
Global Navigational Satellite Systems (GNSS) are navigation and positioning applications and include the Global Positioning System (GPS) as well as the Global Orbiting Navigational Satellite System (GLONASS). For illustrative purposes, the GPS navigational system employs a number of satellites in an orbit about the earth and dispersed in orbital planes at a high altitude around the earth. The control segment consists of tracking stations located around the world, wherein the GPS provides specially coded satellite signals that can be processed in a GPS receiver, enabling the receiver to compute velocity, time and position. The GNSS can be used to determine the position of a user on or near the earth from signals received from the orbiting satellites or space vehicles. The latitude, longitude and even altitude of any point can be calculated from the time of reception of the electromagnetic signal using several satellites to a GNSS receiver.
As has been demonstrated in recent conflicts, many military operations rely upon advanced precision bombing and need a robust Navigation Warfare (NAVWAR) capability. Navigation Warfare can be broadly segmented into three areas: Protection, Prevention, and Preservation. Protection is the maintenance of precise navigation capability in the face of hostile electronic countermeasures. Prevention is the denial of precision navigation to an adversary to reduce his operational capability. Preservation is the maintenance of civil navigation capability outside the designated Area of Operations (AOO). These mission requirements are supported by the three disciplines of Information Warfare: Electronic Protection (EP), Electronic Attack (EA), and Electronic Support (ES). Electronic Attack addresses the Prevention (jamming) mission. Electronic Protection (anti-jam) and Electronic Support (jammer detection) support the Protection mission. Each of these areas requires precise knowledge of targets and friendly assets, and Global Navigational Satellite Systems (GNSS) have been the predominant resource.
The GNSS navigational systems have significant benefits over other positioning and navigational systems because these systems do not rely upon visual, magnetic or other points of reference. However, existing GNSS navigational systems can experience blackout areas or regions when a sufficient number of GNSS satellites are not within line-of-sight of the receiver. Furthermore, GNSS systems are susceptible to jamming by higher power signals.
By way of example, the GPS system is described in further detail herein. In simple terms, GPS systems determine position by processing the time it takes the coded GPS signal to reach the receiver from the particular satellite. The GPS receiver generates a set of codes identical to those codes (e.g., the Y-code or the C/A-code) transmitted by the satellites. In order to calculate the travel time, the receiver determines how far it has to shift its own codes to match the codes transmitted by the satellites. The determined travel times for each satellite are multiplied by the speed of light to determine the distances from the satellites to the receiver. In a typical processing, the GPS receiver receives GPS signals from four or more satellites to enable a satisfactory response. With the information from these GPS satellites, the user can compute the key parameters by solving as independent equations, i.e., the user's location in three physical coordinates (x, y, and z) and time, thus providing the user its own position, velocity and time through known triangulation techniques. Thus, the receiver unit can accurately determine the position in three dimensions (e.g., longitude, latitude, and altitude). Receivers can use a further satellite to accommodate a timing offset between the clocks in the receiver and the clocks in the satellites. Additional satellite measurements can be used to improve the position solution.
In the present configuration, each GPS satellite continuously transmits two spread spectrum, L-band signals: an L1 signal carries the navigation and has a frequency fL1 of 1575.42 MHz, and an L2 signal having a frequency fL2 of 1227.6 MHz, which is used to measure the ionospheric delay by precise positioning service equipped receivers. Three binary codes shift the L1 and/or L2 carrier phase. The L1 signal from each satellite is modulated by two pseudo-random codes, the coarse acquisition (C/A) code and the precise code (P-code). The P-code is normally encrypted, with the encrypted version of the P-code referred to as the Y-code. The L2 signal from each satellite is modulated by the Y-code. The C/A code is available for non-military uses, while the P-code (Y-code) is reserved for military or other government authorized uses.
In more particular detail, the Coarse Acquisition Code modulates the L1 carrier phase, wherein the C/A code is a repeating 1 MHz Pseudo Random Noise (PRN) Precise Code (P-Code). This noise-like code modulates the L1 carrier signal, “spreading” the spectrum over a 1 MHz bandwidth. The C/A code repeats every 1023 bits (one millisecond). There is a different C/A code/P-Code for each GPS satellite, and GPS satellites are often identified by their P-Code number, the unique identifier for each pseudo-random-noise code. The C/A code that modulates the L1 carrier is the basis for the civil standard positioning service.
The P-Code modulates both the L1 and L2 carrier phases, wherein the P-Code is a very long, about seven days, 10 MHz P-Code. In the Anti-Spoofing (AS) mode of operation, the P-Code is encrypted into the Y-Code. The encrypted Y-Code requires a classified AS Module for each receiver channel and is only used by authorized users with cryptographic keys. The P (Y)-Code is the basis for the precise positioning service (PPS).
The navigation message is typically a 50 Hz signal consisting of data points that describe the GPS satellite orbits, clock corrections, and other system parameters and modulates the L1-C/A code signal and the P(Y) code signals.
The C/A code and P(Y) code are usually code division multiple access (CDMA) systems where a pair of unique signals are assigned to each satellite in the GPS phase of the C/A code or the P(Y) code. The GPS receiver applies correlation to measure timing, and the received signal is correlated with the locally generated replicas of the selected satellite's signal as part of the acquisition. The traditional GPS receiver acquires this phase by continuous sliding, multiplication, and addition. The C/A code is used in civilian GPS receivers and the military GPS receivers use both C/A code and P(Y) code. In general, the military receiver acquires the C/A code and transfers this timing to P(Y) code for tracking.
There are several sources of errors for GPS, and two signals are typically used to reduce/eliminate errors that arise due to refraction of the transmitted signal, such as by the ionosphere. The L1 signal is typically Binary Phase Shift Keying (BPSK) modulated by two pseudorandom codes in phase quadrature. The phase code modulation is ideally suited to measuring time or time delay. The time delay correlates to a measure of range while the difference in phase measurements taken at fixed time intervals correlates to a measure of frequency. The phase code modulation is compared (correlated) with the expected phase or replica of the phase code modulation. Typical phase code modulations include both BPSK and Binary Frequency-Shift Keying (BFSK).
As is well known, a pseudorandom code sequence is a series of numbers that are random, and using a binary pseudorandom code to modulate the phase of a carrier signal produces a suppressed carrier spread spectrum signal. The L2 signal is BPSK modulated by only one of the pseudorandom codes. The pseudorandom codes permit simultaneous use of a number of GPS satellite signals to provide dynamic position information. A signal transmitted by a particular GPS satellite is acquired by generating and correlating the pseudorandom code for that satellite. Some of the pseudorandom codes are known and are generated or stored in commercially available GPS receivers. Other pseudorandom codes are not publicly known such as for military or certain private applications.
There are situations where a GPS receiver may not have access to a sufficient number of satellites to properly process the position data. A system that augments GPS satellite measurements allowing a GPS receiver to function properly is called a pseudolite. Pseduolites are also used in other GNSS implementations. Terrestrial based pseudolites include ground, ship and aircraft based locations with GPS transmitters that are used to transmit the L1 and L2 signals. The pseudolites can also increase the jamming levels at which GPS acquisition and navigation can be achieved by providing much higher signal power levels. Therefore, a potential jammer would need to transmit much higher signal levels to jam the pseudolite signals. Existing ground based pseudolite navigation systems are based on a fixed location for each pseudolite transmitter. Pseduolites expand the capabilities of certain GPS receivers and allow greater accuracy. Pseudolites that are not in a fixed location have been used, however this introduces greater complexity and requires corrections and further processing. For example, a ranging reference signal can be time-slotted and modulated with correction data and broadcast from a ground-based transmitter synchronized to GPS time. A second receiver is typically required at the non-fixed location to process the ground station signals broadcast at the second frequency. Several techniques have been used for approach and landing on aircraft carriers, which illustrates one example involving two moving assets that require precise state information.
In some cases, pseudolites broadcast a signal at the same frequency as GPS satellites operate such that the receiver can process this measurement as though it were another satellite. However, a pseudolite with this signal format will act as a jammer to users operating near the transmitter, thereby preventing that receiver from receiving clear signals from the GPS satellites.
If a military GPS receiver is under a hostile environment and exposed to a strong jamming threat, the less vulnerable direct P(Y) acquisition becomes necessary. Intentional and unintentional jamming of GPS satellite C/A code and P(Y) code signals prevents the signal acquisition and tracking by GPS receivers. The relatively low power of GPS satellite signals facilitates the ease of such jamming, thus increasing the need for better pseudolites.
An impediment to the implementation of pseudolites in certain areas, such as military applications, is that dedicated circuits are used to generate the higher power pseudolite signals and maintain the quality of the signal with the satellites. Dedicated or custom hardware is both expensive and incurs logistics and operational problems. Products in this category are referred to in a general sense as “High Demand/Low Density Assets” and are undesirable.
Furthermore, GPS signal requirements include having a frequency reference at a precise multiple of 10.23 MHz (fundamental frequency of the GPS satellites). Pseudolites generally lack high quality frequency references and rely on adjustment mechanisms such as described in U.S. Pat. No. 6,590,524. The narrow and specific requirements are counter to the principles associated with having flexible reusable multi-mission systems.
A system of reusable and flexible components is especially useful for military implementations. In the past, software was designed specifically for a single application and there would be multiple applications in which the majority of the code was similar. As discussed herein, differences in language and architecture prevented different functionalities from being reused. Newly developed applications also typically have a relatively higher risk of failure and require more testing and debugging.
The use of object oriented, distributed framework based software systems has led to improvement in the modularization of software, but also has somewhat increased the complexity of the hardware. The heterogeneity of the distributed computing platform means that the interfaces with devices such as field programmable gate arrays (FPGA) and similar devices became increasingly complex. Interfaces between processors eat into valuable computing time and retard calculations. In applications that require real time processing, the general purpose processors are not satisfactory. In addition, the power requirements generally become excessive.
Layered or component-based systems have a thin common layer or component base class that is used in the development of all software modules. Each of the major capabilities of the system is represented by at least one module or component. These modules or components are thus “wrapped” in the thin common layer. Independent components are developed, tested, and packaged independently of each other, and while operating have no knowledge of their environment, since all input/output is constrained to interface ports connected from the outside. Run time discoverable parameter ports control specific behavior. Software components thus allow reuse by performing a particular function and providing an appropriate interface with a larger system. Each component would ideally be autonomous regarding its particular functionality. This autonomy would allow changes to be made with individual components without disturbing the configuration of the entire system. Relating the various quasi-autonomous components to each other results in a high degree of complexity in communication and synchronization code.
Although such systems have extraordinary benefits, the implementation is exceedingly difficult. Distributed processing systems of general purpose or special purpose computers, use a framework of common electrical, physical, and logical interfaces to specify and enforce compatible interfaces between software programs that perform discretely defined processing (components). In a distributed processing system of general purpose or special purpose computers, signal and specialized data processing can consume more processing time and resources than can be provided in a processor. To obtain more processing per volume or per cost, the known devices use specialized digital hardware such as FPGA's, or special purpose integrated circuits. These mechanisms do not provide a common, controllable interface that can interface in a common way to other software-based signal and data processing components in the distributed system. Customarily, large computations of partitionable problems with time constraints are performed using distributed processing.
In order to achieve real time processing, field programmable gate arrays (FPGAs) are typically employed. The applications coded in hardware design language (HDL) running on FPGAs achieve orders of magnitude speed improvements over their software counterparts running on general purpose computers. The reconfigurability of the FPGAs provides adaptive processing, and high density FPGAs currently accommodate multiple complex applications running in parallel. But, there are significant problems in integrating with multiple applications, which run on FPGAs and boards manufactured by the various manufacturers into a coherent form.
There is a significant desire for speed and higher processing power particularly in fields such as GNSS receivers and GNSS pseudolites that can process navigation data from satellites and provide faster and more accurate state information. The faster the computational algorithms and digital signal processing functions are processed the faster the system can respond. Unfortunately, the core functions are typically designed and implemented for each specific task without any consideration of code reuse or interoperability between cores or both which results in expensive modification costs and inefficiency.
Therefore, what is needed is a system and technique for implementing a software defined navigation signal generator. The framework should be robust and allow customizable components to be easily instantiated and deployed. The underlying software should provide flexible pseudolite waveforms with sufficient characteristics to enable a broad range of navigation related applications.